REM >Director:Menus.Memory
ON ERROR ERROR EXT ERR,REPORT$+" at line "+STR$ ERL:END

menu=FNswi_number("Director_Menu")
endmenu=FNswi_number("Director_EndMenu")
option=FNswi_number("Director_Option")
command=FNswi_number("Director_Command")
dash=FNswi_number("Director_Dash")
memory=FNswi_number("Director_Memory")

*Set Director$Menu memory
SYS menu,"Memory <Director$Menu> -temp"

SYS memory TO module%,workspace%,malloc%,blocks%,dynamic%,free%,largest%

SYS option,"Module -fg 4"
SYS option,FNnum(module%)

SYS option,"Workspace -fg 4"
SYS option,FNnum(workspace%)

SYS option,"Heap -fg 4"
SYS option,FNnum(malloc%)

SYS option,"Total -fg 11"
SYS option,FNnum(module%+workspace%+malloc%)

SYS dash

SYS option,"""Heap blocks"" -fg 4"
SYS option,FNnum(blocks%)

IF dynamic% THEN

SYS dash

SYS option,"""Dynamic area"" -fg 4"
SYS option,FNnum(dynamic%)

SYS option,"Free -fg 4"
SYS option,FNnum(free%)

SYS option,"Largest -fg 4"
SYS option,FNnum(largest%)

ENDIF

SYS endmenu

END

DEF FNnum(a%)
a$=STR$ a%
IF LEN a$>4 THEN a$=LEFT$(a$,LEN a$-3)+","+RIGHT$(a$,3)
=RIGHT$(""+a$,12)

DEF FNswi_number(swi$)
SYS "OS_SWINumberFromString",,swi$ TO swi%
=swi%
